/// @tags: BinomInversion DP on Tree
#include <cstdio>
#include <cstring>
#include <iostream>
#include <vector>

using std::cin;
using std::cout;

namespace BlueQuantum {

typedef long long LL;

constexpr int MAXN = 1e2 + 3, P = 1e9 + 7;

int n;
int F[MAXN], G[MAXN], C[MAXN][MAXN];
std::vector<int> e[MAXN];

inline int inc(int a, int b) {
  a += b;
  return a >= P ? a - P : a;
}

inline void prework() {
  C[0][0] = 1;
  for (int i = 1; i <= n; ++i) {
    C[i][0] = 1;
    for (int j = 1; j <= i; ++j) {
      C[i][j] = inc(C[i - 1][j], C[i - 1][j - 1]);
    }
  }
}

int f[MAXN][MAXN][2], g[MAXN][2];
int siz[MAXN];

void dfs(int u, int fa) {
  int(*cur)[2] = f[u];
  cur[1][0] = cur[1][1] = 1;
  siz[u] = 1;
  for (auto v : e[u]) {
    if (v != fa) {
      dfs(v, u);
      int(*las)[2] = f[v];
      for (int i = 0; i <= siz[u]; ++i)
        for (int j = 0; j <= siz[v]; ++j) {
          g[i + j][0] = inc(g[i + j][0], (LL)cur[i][0] * las[j][1] % P);
          g[i + j][1] = inc(g[i + j][1], (LL)cur[i][1] * las[j][1] % P);
          if (i + j) {
            g[i + j - 1][0] = inc(g[i + j - 1][0], (LL)cur[i][0] * las[j][0] % P);
            g[i + j - 1][1] = inc(g[i + j - 1][1], (LL)cur[i][1] * las[j][0] % P);
            g[i + j - 1][1] = inc(g[i + j - 1][1], (LL)cur[i][0] * las[j][1] % P);
          }
        }
      memcpy(cur, g, sizeof(decltype(cur[0])) * (siz[u] + siz[v] + 1));
      memset(g, 0, sizeof(decltype(g[0])) * (siz[u] + siz[v] + 1));
      siz[u] += siz[v];
    }
  }
}

inline LL qpow(LL base, int exp = P - 2) {
  LL res = 1;
  for (; exp; exp >>= 1, base = base * base % P)
    if (exp & 1) res = res * base % P;
  return res;
}

inline int main() {
  cin >> n;
  for (int i = 1, u, v; i < n; ++i) {
    cin >> u >> v;
    e[u].push_back(v), e[v].push_back(u);
  }
  prework();
  dfs(1, 0);
  for (int i = 0; i < n - 1; ++i) F[i] = f[1][n - i][1] * qpow(n, n - 2 - i) % P;
  F[n - 1] = 1;
  for (int i = 0; i < n; ++i) {
    for (int j = i; j < n; ++j)
      G[i] = inc(G[i], (((j - i) & 1) ? P - (LL)F[j] * C[j][i] % P : (LL)F[j] * C[j][i] % P));
    cout << G[i] << '\n';
  }
  return 0;
}

}  // namespace BlueQuantum

int main() {
#ifndef ONLINE_JUDGE
#ifdef LOCAL
  freopen("/tmp/CodeTmp/testdata.in", "r", stdin);
  freopen("/tmp/CodeTmp/testdata.out", "w", stdout);
#else
  freopen("CF917D Stranger Trees.in", "r", stdin);
  freopen("CF917D Stranger Trees.out", "w", stdout);
#endif
#endif

  std::ios::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  return BlueQuantum::main();
}
